#!/usr/bin/env python
# -*- coding: UTF-8 -*-
'''
@Project ：图灵学习 
@File    ：task对象的使用.py
@IDE     ：PyCharm 
@Author  ：ChenLiGao
@Date    ：2024-11-08 10:22
'''
import asyncio


async def work1():
    print("任务1.....")
    await asyncio.sleep(3)
    return "1"

async def work2():
    print("任务2......")
    await asyncio.sleep(2)
    return "2"

# 3.6版本语法
# loop = asyncio.get_event_loop()
# task_list = [loop.create_task(work1()), loop.create_task(work2())] # 在高版本种是无法使用的
# loop.run_until_complete(asyncio.wait(task_list))

# 3.7以上的语法
async def main():
    task_list = [asyncio.create_task(work1()), asyncio.create_task(work2())]
    await asyncio.wait(task_list)

asyncio.run(main())

"""
    1.创建task对象的方式一：
        老语法：通过事件循环对象loop创建的task对象：loop.create_task(协程对象)老语法
        
    2.创建task对象的方式二：
        新语法：通过asyncio去创建的，asyncio.create_task(协程对象)
        
        我们需要在一个特定的协程函数内部去使用asyncio.create_task
            要求：必须确保事件循环对象的存在
"""